home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / earcd / ppaint64 / rexx / slideshow.pprx < prev    next >
Text File  |  1996-08-29  |  5KB  |  197 lines

  1. /* PPaint Amiga Rexx script - Copyright © 1995 Cloanto Italia srl */
  2. /* Slideshow.pprx: simple slideshow program */
  3.  
  4.  
  5. MYPORT = 'PPAINT'
  6.  
  7. IF ~SHOW('P', MYPORT) THEN DO
  8.     IF EXISTS('PPaint:PPaint') THEN DO
  9.         ADDRESS COMMAND 'Run >NIL: PPaint:PPaint'
  10.         DO 30 WHILE ~SHOW('P',MYPORT)
  11.              ADDRESS COMMAND 'Wait >NIL: 1 SEC'
  12.         END
  13.     END
  14.     ELSE DO
  15.         SAY "Personal Paint could not be loaded."
  16.         EXIT 10
  17.     END
  18. END
  19.  
  20. IF ~SHOW('P', MYPORT) THEN DO
  21.     SAY 'Personal Paint Rexx port could not be opened.'
  22.     EXIT 10
  23. END
  24.  
  25. ADDRESS VALUE MYPORT
  26. OPTIONS RESULTS
  27. OPTIONS FAILAT 10000
  28.  
  29. Version 'REXX'
  30. IF RESULT < 2 THEN DO
  31.     errmess = 'This script requires a newer_version of Personal Paint.'
  32.     SAY errmess
  33.     RequestNotify 'PROMPT="'errmess'"'
  34.     EXIT 10
  35. END
  36.  
  37. Get 'LANG'
  38. IF RESULT = 1 THEN DO        /* Deutsch */
  39.     txt_title_filreq  = 'Grafikverzeichnis auswählen'
  40.     txt_title_options = 'Diaschau-Optionen'
  41.     txt_gad_repeat    = 'Wiede_rholen:'
  42.     txt_gad_auto      = 'Auto_matisch:'
  43.     txt_msg_stopped   = 'Diaschau wurde unterbrochen.'
  44.     txt_msg_complete  = 'Diaschau beendet.'
  45.     txt_err_oldclient = 'Für dieses Skript_ist eine neuere Version_von Personal Paint erforderlich.'
  46.     txt_err_nolist    = 'Listendatei konnte nicht_geöffnet werden.'
  47. END
  48. ELSE IF RESULT = 3 THEN DO    /* Français */
  49.     txt_title_filreq  = 'Choisir le répertoire des graphismes'
  50.     txt_title_options = 'Options de diaporama'
  51.     txt_gad_repeat    = '_Répéter :'
  52.     txt_gad_auto      = 'Auto_matique :'
  53.     txt_msg_stopped   = 'Le diaporama a été interrompu.'
  54.     txt_msg_complete  = 'Diaporama terminé.'
  55.     txt_err_oldclient = 'Ce script nécessite une nouvelle_version de Personal Paint.'
  56.     txt_err_nolist    = "Impossible d'ouvrir le fichier de liste."
  57. END
  58. ELSE IF RESULT = 2 THEN DO    /* Italiano */
  59.     txt_title_filreq  = 'Selezionare cassetto immagini'
  60.     txt_title_options = 'Opzioni slideshow'
  61.     txt_gad_repeat    = '_Ripetuto:'
  62.     txt_gad_auto      = 'Auto_matico:'
  63.     txt_msg_stopped   = 'Lo slideshow è stato interrotto.'
  64.     txt_msg_complete  = 'Slideshow terminato.'
  65.     txt_err_oldclient = 'Questa procedura richiede_una versione più recente_di Personal Paint.'
  66.     txt_err_nolist    = 'Il file indice non può essere aperto.'
  67. END
  68. ELSE DO                /* English */
  69.     txt_title_filreq  = 'Select artwork directory'
  70.     txt_title_options = 'Slideshow Options'
  71.     txt_gad_repeat    = '_Repeat:'
  72.     txt_gad_auto      = 'Auto_matic:'
  73.     txt_msg_stopped   = 'The slideshow has been stopped.'
  74.     txt_msg_complete  = 'Slideshow complete.'
  75.     txt_err_oldclient = 'This script requires a newer_version of Personal Paint.'
  76.     txt_err_nolist    = 'List file could not be opened.'
  77. END
  78.  
  79. Version 'REXX'
  80. IF RESULT < 4 THEN DO
  81.     SAY txt_err_oldclient
  82.     RequestNotify 'PROMPT="'txt_err_oldclient'"'
  83.     EXIT 10
  84. END
  85.  
  86. DelFrames 'ALL'
  87. IF RC = 5 THEN
  88.     EXIT 0
  89.  
  90. FreeEnv 'QUERY'
  91. IF RC = 5 THEN
  92.     EXIT 0
  93.  
  94. tmpfname = 'T:pprx_slideshow.list'
  95.  
  96. LockGUI
  97.  
  98. IF ~EXISTS(tmpfname) THEN DO
  99.     RequestPath '"'txt_title_filreq'"'
  100.     IF RC = 0 THEN DO
  101.         tmpfname = 'T:pprx_temp.'PRAGMA('ID')
  102.         ADDRESS COMMAND 'List >'tmpfname' 'RESULT' NOHEAD PAT=~(#?.info) LFORMAT="*"%s%s*"*N1" ALL FILES'
  103.     END
  104. END
  105.  
  106. originalbars = ''
  107. listopen = 0
  108. SIGNAL ON Break_C
  109.  
  110. IF EXISTS(tmpfname) THEN DO
  111.     Request '"'txt_title_options'" "CHECK = ""'txt_gad_repeat'"", 0  CHECK = ""'txt_gad_auto'"", 1 "'
  112.     IF RC = 0 THEN DO
  113.         repeat = RESULT.1
  114.         automatic = RESULT.2
  115.         IF automatic THEN
  116.             noprog = ''
  117.         ELSE
  118.             noprog = 'NOPROGRESS'
  119.  
  120.         Get SETTING BARS
  121.         originalbars = RESULT
  122.         IF OPEN('listfile', tmpfname , R) THEN DO
  123.             listopen = 1
  124.             errcode = 0
  125.             Set '"BARS=0"'
  126.             DO FOREVER
  127.                 prevpos = SEEK('listfile', 0, CURRENT)
  128.                 curfname = READLN('listfile')
  129.                 IF EOF('listfile') THEN DO
  130.                     IF repeat THEN DO
  131.                         SEEK('listfile', 0, BEGIN)
  132.                         ITERATE
  133.                     END
  134.                     ELSE LEAVE
  135.                 END
  136.                 curtimes = READLN('listfile')
  137.                 IF EOF('listfile') THEN DO
  138.                     IF repeat THEN DO
  139.                         SEEK('listfile', 0, BEGIN)
  140.                         ITERATE
  141.                     END
  142.                     ELSE LEAVE
  143.                 END
  144.  
  145.                 IF DATATYPE(curtimes) ~= 'NUM' THEN curtimes = 1
  146.                 curtimes = ABS(curtimes)
  147.                 curtimes = TRUNC(curtimes)
  148.                 IF curtimes < 1 THEN curtimes = 1
  149.  
  150.                 GetFileFormat curfname
  151.                 IF RC = 0 THEN DO
  152.                     IF UPPER(RESULT) = 'ANIM' THEN
  153.                         PlayFile curfname 'TIMES' curtimes 'FORCE QUIET' noprog
  154.                     ELSE DO
  155.                         LoadImage curfname 'FORCE QUIET' noprog
  156.                         IF RC = 0 & automatic THEN
  157.                             ADDRESS COMMAND 'Wait >NIL: 3 SEC'
  158.                     END
  159.                     IF RC = 5 THEN
  160.                         errcode = 5
  161.                     IF RC = 0 & ~automatic THEN DO
  162.                         WaitForClick
  163.                         IF RC ~= 0 THEN
  164.                             errcode = 5
  165.                     END
  166.                 END
  167.                 IF errcode > 0 THEN BREAK
  168.             END
  169.             CALL CLOSE('listfile')
  170.             listopen = 0
  171.             IF errcode > 0 THEN
  172.                 RequestNotify 'PROMPT="'txt_msg_stopped'"'
  173.             ELSE
  174.                 RequestNotify 'PROMPT="'txt_msg_complete'"'
  175.         END
  176.         ELSE
  177.             RequestNotify 'PROMPT="'txt_err_nolist'"'
  178.  
  179.         Set '"BARS='originalbars'"'
  180.     END
  181.     ADDRESS COMMAND 'Delete >NIL: 'tmpfname
  182. END
  183. UnlockGUI
  184. EXIT 0
  185.  
  186.  
  187.  
  188. Break_C:
  189.  
  190.     if originalbars ~= '' THEN
  191.         Set '"BARS='originalbars'"'
  192.     IF listopen THEN
  193.         CALL CLOSE('listfile')
  194.     ADDRESS COMMAND 'Delete >NIL: 'tmpfname
  195.  
  196.     RETURN
  197.